// 用来表明有没有监听器实例
let Watcher = null
// 表明当前依赖实例编号，便于区分不同的Dep
var uid = 0
// 把一个变量相关的监听器都存在subs变量中
class Dep {
  constructor() {
    this.id = uid++
    this.subs = []
  }
  notify() {
    // 执行所有与变量相关的回调函数
    this.subs.forEach(sub => sub.update())
  }
  addSub(sub) {
    // 添加与变量相关的订阅回调
    this.subs.push(sub)
  }
}